encyklopedia.space

RFC 7230

RFC 7230 – „Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing” – jest jednym z dokumentów RFC (Request for Comments) opublikowanych przez Internet Engineering Task Force w 2014 roku. Dokument ten uzupełnia i zastępuje poprzedni standard RFC 2616, definiując składnię i zasady routingu komunikatów w protokole HTTP w wersji 1.1.

Historia i cel powstania

Wraz z rosnącą złożonością aplikacji internetowych oraz potrzebą lepszego dopasowania protokołu HTTP do współczesnych wymagań, grupy robocze IETF podjęły decyzję o podziale RFC 2616 na cztery odrębne dokumenty: RFC 7230, RFC 7231, RFC 7232 i RFC 7233. Dzięki temu każdy z nich mógł skupić się na konkretnym aspekcie protokołu:

  • RFC 7230 – składnia i routing komunikatów
  • RFC 7231 – semantyka metod, statusów i nagłówków
  • RFC 7232 – warunki i modyfikacje zasobów
  • RFC 7233 – obsługa zakresów i wieloczęściowych odpowiedzi

Zakres dokumentu

RFC 7230 specyfikuje:

  • Strukturę komunikatów HTTP/1.1 – request line, status line, nagłówki i ciało wiadomości.
  • Reguły parsowania i walidacji składni, w tym definicję ABNF (Augmented Backus–Naur Form).
  • Mechanizmy routingu, w tym URI, nagłówek Host i obsługę połączeń wielokrotnych (persistent connections).
  • Obsługę znakowania ciągów (tokenów), kodowanie znaków (Unicode/UTF-8) oraz zasady dopuszczalnych kombinacji znaków w nagłówkach.
  • Wymagania dotyczące wersji protokołu (HTTP/1.1 vs. HTTP/2) i sposobu negocjacji wersji.
  • Mechanizmy ochrony przed atakami typu „request smuggling” i inne kwestie bezpieczeństwa.

Główne elementy składni

Komunikaty HTTP opisane w RFC 7230 składają się z trzech części:

  1. Start line – w przypadku żądania jest to method SP request-target SP HTTP-version CRLF, a w odpowiedzi HTTP-version SP status-code SP reason-phrase CRLF.
  2. Headers – zestaw pól nagłówka, oddzielonych znakiem CRLF. Każde pole ma postać field-name ":" OWS field-value OWS. Wartości mogą być rozciągane na wiele linii przy użyciu obs-fold (przestarzały mechanizm).
  3. Message body – opcjonalna część zawierająca dane przesyłane pomiędzy klientem a serwerem. Jego obecność i długość są określane przez nagłówki Content-Length oraz Transfer-Encoding.

Routing i połączenia

RFC 7230 wprowadza precyzyjne zasady dotyczące:

  • nagłówka Host – konieczność jego obecności w każdym żądaniu HTTP/1.1, co umożliwia wirtualne hostowanie wielu domen na jednym adresie IP.
  • Obsługi połączeń utrzymywanych (persistent connections) poprzez nagłówek Connection oraz zasady zamykania połączeń (Connection: close).
  • Użycia Upgrade do przejścia na nowsze protokoły, np. HTTP/2, przy zachowaniu zgodności wstecznej.

Powiązane dokumenty

RFC 7230 jest częścią szerszego zestawu specyfikacji opisujących HTTP/1.1. Najważniejsze z nich to:

Znaczenie i wpływ

Od momentu publikacji w 2014 roku RFC 7230 stał się podstawą współczesnych implementacji serwerów i klientów internetowych. Jego wytyczne zapewniają:

  • Jednolitość interpretacji komunikatów pomiędzy różnymi platformami.
  • Poprawę bezpieczeństwa poprzez eliminację niejednoznaczności parsowania.
  • Lepszą obsługę nowoczesnych technik, takich jak TLS w połączeniach HTTPS.

Dzięki temu HTTP/1.1 pozostaje jednym z najważniejszych protokołów warstwy aplikacji w Internecie, pomimo rozwoju nowszych wersji, takich jak HTTP/2 i HTTP/3.

Podsumowanie

RFC 7230 jest kluczowym dokumentem definiującym HTTP w wersji 1.1. Jego precyzyjna specyfikacja składni i routingu komunikatów umożliwia interoperacyjność i bezpieczeństwo współczesnych aplikacji internetowych. Dokument stanowi fundament dla kolejnych specyfikacji z serii RFC 723x oraz dla dalszego rozwoju protokołu HTTP.